package com.xuetang.mapper;

import com.xuetang.entity.SysUser;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 用户Mapper接口
 */
@Mapper
public interface UserMapper {

    /**
     * 根据ID查询用户
     *
     * @param id 用户ID
     * @return 用户信息
     */
    SysUser getById(@Param("id") Long id);

    /**
     * 根据微信openid查询用户
     *
     * @param openid 微信openid
     * @return 用户信息
     */
    SysUser getByOpenid(@Param("openid") String openid);

    /**
     * 插入用户
     *
     * @param user 用户信息
     * @return 影响行数
     */
    int insert(SysUser user);

    /**
     * 更新用户
     *
     * @param user 用户信息
     * @return 影响行数
     */
    int update(SysUser user);

    /**
     * 查询所有用户
     *
     * @return 用户列表
     */
    List<SysUser> list();

    /**
     * 查询用户总数
     *
     * @return 用户总数
     */
    int count();

    /**
     * 查询今日新增用户数
     *
     * @return 今日新增用户数
     */
    int countTodayNewUsers();

    /**
     * 根据糖尿病类型查询用户数
     *
     * @param diabetesType 糖尿病类型
     * @return 用户数
     */
    int countByDiabetesType(@Param("diabetesType") Integer diabetesType);
}